The concepts of the Object-oriented paradigm using Java. The basic principles of software engineering are emphasized. We study how to design and think in an object oriented fashion. As a final project, students work in groups to develop a Gnutella distributed music-sharing client. Text: Core Java 2, Volume I: Fundamentals and Volume II: Advanced Features,Hortsmann and Cornell. Requirements: One exam, two problem sets, one project.

( 3 reviews )

Topic: object oriented programming

A theoretical treatment of what can be computed and how fast it can be done. Applications to compilers, string searching, and control circuit design will be discussed. The hierarchy of finite state machines, pushdown machines, context free grammars and Turing machines will be analyzed, along with their variations. The notions of decidability, complexity theory and a complete discussion of NP-Complete problems round out the course. Text: Introduction to the Theory of Computation, Michael Sipser....

( 8 reviews )

Topic: computation

In this course design and analysis of algorithms is studied. Methodologies include: divide and conquer, dynamic programming, and greedy strategies. Their applications involve: sorting, ordering and searching, graph algorithms, geometric algorithms, mathematical (number theory, algebra and linear algebra) algorithms, and string matching algorithms. We study algorithm analysis - worst case, average case, and amortized, with an emphasis on the close connection between the time complexity of an...

( 8 reviews )

Topics: algorithms, algorithm design

This course covers the mathematical topics most directly related to computer science. Topics include: logic, relations, functions, basic set theory, countability and counting arguments, proof techniques, mathematical induction, graph theory, combinatorics, discrete probability, recursion, recurrence relations, and number theory. Emphasis is placed on providing a context for the application of the mathematics within computer science. The analysis of algorithms requires the ability to count the...

( 15 reviews )

Topics: ars digita, computer science, discrete math, logic, proof techniques, recurrence relations, basic...

Includes the basics of digital logical design, computer organization and architecture including assembly language, processor design, memory hierarchies and pipelining. Students examine the detailed construction of a very simple computer. Problem sets use Beta-Sim, a RISC simulator written by Mike Wessler. A higher level view of a modern RISC architecture is studied, using the Patterson and Hennessey introductory text, from both the programmer's point of view and the hardware designer's point of...

Topics: digital logic, design, computer organization

An introduction to programming and the power of abstraction, using Abelson and Sussman's classic textbook of the same name. Key concepts include: building abstractions, computational processes, higher-order procedures, compound data, data abstractions, controlling interactions, generic operations, self-describing data, message passing, streams and infinite data structures, meta-linguistic abstraction, interpretation of programming languages, machine model, compilation, and embedded languages....

( 1 reviews )

Topics: ars digita, computer science, programming, abstraction

A more formal approach to Relational Database Management Systems, compared the way they were covered during Web Applications. Database systems are discussed from the physical layer of B-trees and file servers to the abstract layer of relational design. Also includes alternative and generic approaches to database design and database management system including relational, object-relational, and object-oriented systems, SQL standards, algebraic query languages, integrity constraints, triggers,...

( 3 reviews )

Topics: databases, relational database management systems, RDBMS

Topics on the engineering of computer software and hardware systems: techniques for controlling complexity, system infrastructure, networks and distributed systems, atomicity and coordination of parallel activities, recovery and reliability, privacy of information, impact of computer systems on society. Case studies of working systems and outside reading in the current literature provide comparisons and contrasts. The group project is to write an NSF systems proposal to fund a middle-ware...

( 1 reviews )

Topic: distributed systems

This course focuses on Modeling, quantification, and analysis of uncertainty by teaching random variables, simple random processes and their probability distributions, Markov processes, limit theorems, elements of statistical inference, and decision making under uncertainty. This course extends the discrete probability learned in the discrete math class. It focuses on actual applications, and places little emphasis on proofs. A problem set based on identifying tumors using MRI (Magnetic...

Topic: probability

This course teaches the basics of designing a dynamic web site with a database back end, including scripting languages, cookies, SQL, and HTML with the goal of building such a site as the main (group) project Emphasizes computer-human interface and the graphical display of information. Crucial to the project is the identification of a client with whom the group must work with throughout the month, designing specifications, implementing them, reviewing and evaluating, and testing. This is a...

( 3 reviews )

Topics: dynamic web site design, web design, graphical interfaces

An quick overview of AI from both the technical and the philosophical points of view. Topics discussed include search, A*, Knowledge Representation, Neural Nets. Text: Artificial Intelligence, Patrick Winston. Selected papers. Requirements: Two problem sets.

Topic: artifical intelligence

A basic introduction to the Calculus and Linear Algebra. The goal is to make students mathematically literate in preparation for studying a scientific/engineering discipline. The first week covers differential calculus: graphing functions, limits, derivatives, and applying differentiation to real-world problems, such as maximization and rates of change. The second week covers integral calculus: sums, integration, areas under curves and computing volumes. This is not meant to be a comprehensive...

Topics: ars digita, calculus, linear algebra

A self-study workshop to review and/or learn a wide range of Unix tools, including shell scripts, awk, lex, yacc, grep etc. This course did not give grades. It was strictly pass or incomplete. Text: Various on-line references. Requirements: Two problem sets.

Topic: unix

Colloquium #9 for ArsDigita University. Guest speaker Gerald Sussman, on 4/2/2001, speaking on "The Legacy of Computer Science". Notes on the talk available at ArsDigita.

( 1 reviews )

Topics: arsdigita, computer science, guest lectures

Colloquium #3 for ArsDigita University. Guest speaker Richard Stallman, on 1/2/2001, speaking on "The Free Software Movement and the GNU/Linux Operating System". Notes on the talk available at ArsDigita.

( 1 reviews )

Topics: computer science, Richard Stallman, free software movement

Colloquium #1 for ArsDigita University. Guest speaker Philip Greenspun, on 11/1/2000, speaking on "Software Engineering Professionalism". Notes on the talk available at ArsDigita.

Topics: arsdigita, computer science, guest lectures

Selected student solutions to course problem sets, mostly from Course 4 (Object-Oriented Program Design) and Course 5 (Algorithms). A chart of what problem sets are covered by these files is part of answers.html. There is also a TAR file that has all of the solution files.

Topics: arsdigita, computer science, problem sets, solutions

Colloquium #6 for ArsDigita University. Guest speaker Philip Greenspun, on 2/17/2001, conducting a One-Day Internet Application Course. Notes on the talk available at ArsDigita. 3 parts.

Topics: arsdigita, computer science, guest lectures

Graduation ceremony for ArsDigita University, in 2 parts. This was the end of ArsDigita University.

Topics: arsdigita, computer science, guest lectures

Colloquium #8 for ArsDigita University. Guest speaker David Parmenter, on 3/15/2001, speaking on "Things I Learned the Hard Way: Engineering and Computer Science in the Real World". Notes on the talk available at ArsDigita.

Topics: arsdigita, computer science, guest lectures

Lecture on discrete mathematics, given on November 28, 2000. Topics covered: cryptography Lecturer: Shai Simonson

Topics: arsdigita, computer science, discrete math, cryptography

Colloquium #7 for ArsDigita University. Guest speaker Allen Shaheen, on 2/27/2001, speaking on "Experience as one of the Founders of Cambridge Technology Partners". Notes on the talk available at ArsDigita.

Topics: arsdigita, computer science, guest lectures

Colloquium #10 for ArsDigita University. Guest speaker Michael Sipser, on 5/9/2001, speaking on "The History and Status of the P versus NP Question". Notes on the talk available at ArsDigita.

Topics: arsdigita, computer science, guest lectures

Colloquium #2 for ArsDigita University. Guest speaker Fred Martin, on 12/1/2000, speaking on "To Mindstorms and Beyond: Evolution of a Construction Kit for Magical Machines". Notes on the talk available at ArsDigita.

Topics: arsdigita, computer science, guest lectures

Colloquium #4 for ArsDigita University. Guest speaker Chip Hazard, on 1/31/2001, speaking on "Financing eBusinesses". Notes on the talk available at ArsDigita.

Topics: arsdigita, computer science, guest lectures

Lecture #1 of ArsDigita University Course 4: Object-oriented Program Design and Software Engineering, given 1//2001. Topics covered include: introduction to Java. Instructor: Dave Goddeau.

Topics: arsdigita, computer science, OOP, Java

Colloquium #5 for ArsDigita University. Guest speaker Marc Hamilton, on 2/14/2001, speaking on "Software Engineering at Internet Speeds". Notes on the talk available at ArsDigita.

Topics: arsdigita, computer science, guest lectures

Lecture #10 for ArsDigita University Course 4, given on 1/9/2001. Topics covered include: exceptions and error handling.

Topics: arsdigita, computer science, OOP, Java

Colloquium #12 for ArsDigita University. Guest speaker Jothy Rosenberg, on 7/2/2001, speaking on "Basic Mechanics of Startup Financing, Equity and IPOs: What Engineers Should Know". Notes on the talk available at ArsDigita.

Topics: arsdigita, computer science, guest lectures

Colloquium #11 for ArsDigita University. Guest speaker Robert Sloan, on 6/1/2001, speaking on "What to do when the Teacher is an Ignoramus or a Liar: Learning from Queries even when the Answers to the Queries are Wrong". Notes on the talk available at ArsDigita.

Topics: arsdigita, computer science, guest lectures